#pragma once
#include "DXAMLCommon.h"

#include "XamlType.h"


class KnownXamlType : 
	public XamlType
{
protected: 
	KnownXamlType(const xshared_ptr<XamlSchemaContext> & spSchemaContext, const xshared_ptr<XamlNamespace> & inNamespace, const struct XamlTypeToken sTypeToken, const xshared_ptr<CXString> & inTypeName);
public: 
	static HRESULT Create(const xshared_ptr<XamlSchemaContext> & spSchemaContext, const struct XamlTypeToken sTypeToken, xshared_ptr<XamlType> & outType);
	static HRESULT Create(const xshared_ptr<XamlSchemaContext> & spSchemaContext, const xshared_ptr<XamlNamespace> & inNamespace, const xshared_ptr<CXString> & inTypeName, xshared_ptr<XamlType> & outType);
	static HRESULT Create(const xshared_ptr<XamlSchemaContext> & spSchemaContext, const xshared_ptr<XamlNamespace> & inNamespace, const xshared_ptr<CXString> & inTypeName, const struct XamlTypeToken sTypeToken, xshared_ptr<XamlType> & outType);
};